As an introduction to the problems solved by the present invention, consider the conventional general purpose computer having an operating system and a number of user interactive application programs. Suppose that a user of such a system operates a conventional spreadsheet application program. And, suppose the user misspells a filename at a prompt within the spreadsheet program.
A conventional application program responds in one of several ways: (a) by displaying an operating system message such as "File not found.", or (b) by displaying a message that interprets the situation of the application program, such as "A graphics file (.GRF) cannot be opened in this directory having the name you specified.", or (c) by dynamically loading another application program, such as a general purpose Help program that presents a message and an opportunity for the user to explore related information, much like using an operator manual.
In (a) above, the operating system detects the user's error and executes a subroutine that prints a numbered generic message. Few users find such information instructive. In (b) above, the spreadsheet program intercepts the operating system error and, rather than allowing the operating system to perpetrate confusion or panic, executes a subroutine that prints a numbered message with some detail that may assist an experienced user. In (c) above, the spreadsheet program blocks the operating system message, as before, and invokes a context switch to a predetermined Help program. Conventionally, the spreadsheet program will have passed a word or phrase to the Help program so that the Help program provides an initially meaningful message from which the user can explore related material. The Help program conventionally uses an indexed message file.
In each of the alternatives presented above messages and executable code are in separate files, often developed by different individuals or companies. By separating the messages from the code, messages can be safely and easily translated into another human language so that the program can be sold in another market. For the spreadsheet program, the concomitant message file is a prerequisite for proper spreadsheet program operation. For the Help program, the concomitant indexed message file is a prerequisite for proper Help program operation.
At the time an application program, such as the spreadsheet program above, is developed, the programmer chooses which level of assistance his program will provide when it encounters an error. If the programmer chooses (c) above, then the name of the Help program executable code file and indexed message file may be hard coded into the spreadsheet program. Consequently, any change to these filenames will require marketing of a revision of the spreadsheet program. A well known alternative is to develop the application program so that, when properly installed on the user's computer system, a Help program chosen by the installer will be used. Any change in these filenames will now require reinstallation of the application program.
All development, marketing, and customer support costs are eventually borne by the user. The total cost to the user of marketing a revision, though costly, may be exceeded by the total cost of reinstallation. Reinstallation can involve gathering information from more than one supplier and making choices with insufficient understanding of the consequences. Therefore, considerable customer support is ordinarily expected by the installer.
Because a general purpose computer system is likely to currently support a large number of application programs, each one being reinstalled when a revision becomes available, users of such systems are tacitly required to learn different styles of interaction with different application programs. Displays from different application programs have varied appearances and content. Operating methods that work well with one application cause errors in others. These differences lead to inadvertent user error, increased user frustration, and a growing demand for application programs that seem to operate uniformly.
The Help program chosen by the spreadsheet application program developer or installer may vary from the choice made for another application program, for example a wordprocessor. Such variation exemplifies further nonuniformity in the user's operating environment. Without appeal, the user must acquiesce to learn not only the nuances of several application programs, but also the best ways to use several different Help programs. Unfortunately, many users risk loss of data and waste operator time and system resources attempting to learn by trial and error.